package com.ruoyi.system.service;

import java.util.List;
import java.util.Map;

import com.ruoyi.system.domain.Dept;
import com.ruoyi.system.domain.DeptTree;
import com.ruoyi.system.tools.BooleanMessage;

/**
 * 单位信息Service接口
 * 
 * @author ruoyi
 * @date 2022-12-08
 */
public interface IDeptService 
{
    /**
     * 查询单位信息
     * 
     * @param id 单位信息主键
     * @return 单位信息
     */
    public Dept selectDeptById(String id);

    /**
     * 查询单位信息列表
     * 
     * @param dept 单位信息
     * @return 单位信息集合
     */
    public List<Dept> selectDeptList(Dept dept);

    /**
     * 新增单位信息
     * 
     * @param dept 单位信息
     * @return 结果
     */
    public int insertDept(Dept dept);

    /**
     * 修改单位信息
     * 
     * @param dept 单位信息
     * @return 结果
     */
    public int updateDept(Dept dept);

    /**
     * 批量删除单位信息
     * 
     * @param ids 需要删除的单位信息主键集合
     * @return 结果
     */
    public int deleteDeptByIds(String ids);

    /**
     * 删除单位信息信息
     * 
     * @param id 单位信息主键
     * @return 结果
     */
    public int deleteDeptById(String id);

    /**
     * 查询单位信息列表custom
     *
     * @param dept 单位信息
     * @return 单位信息集合
     */
    public List<Map<String,Object>> selectDeptListCustom(Dept dept);

    List<DeptTree> selectDeptTreeList();
    List<DeptTree> XiaoxideptTreeList(String olddeptid,String parentid);

    public Dept findJibie1(String ppDeptId);

    public Dept findJibie2(String ppDeptId);

    public List<String> findToZJZX(String ppDeptId,List<String> ppDeptidList);

    public List<Dept> findCengjiAll(String ppDeptId);
    /**
     * 单位拨款详情 查询单位list
     *
     * @param map
     * @return 单位list
     */
    List<Map> selectJingfeiDeptList(Map<String, Object> map);
    /**
     * 检查单位必要信息是否填写
     *
     * @param userId
     * @return Boolean
     */
    BooleanMessage checkDeptInfo(Long userId);

    List<Map<String, Object>> bindQushiquerenDeptList(String deptid,String danweimingcheng);
    List<Map<String, Object>> bindQushiquerenDeptListself(String deptid,String danweimingcheng);

    List<Map<String, Object>> selectZhanghaoxinxi(String deptid);

    List<Map<String, Object>> searchDiqu(String diqu);

    List<Dept> deptsearch(String jigoumingcheng);
}
